home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / modelers / geomview / source.lha / Geomview / include / hpoint3.h < prev    next >
C/C++ Source or Header  |  1993-04-01  |  3KB  |  78 lines

  1. /* Copyright (c) 1992 The Geometry Center; University of Minnesota
  2.    1300 South Second Street;  Minneapolis, MN  55454, USA;
  3.    
  4. This file is part of geomview/OOGL. geomview/OOGL is free software;
  5. you can redistribute it and/or modify it only under the terms given in
  6. the file COPYING, which you should have received along with this file.
  7. This and other related software may be obtained via anonymous ftp from
  8. geom.umn.edu; email: software@geom.umn.edu. */
  9.  
  10. /* Authors: Charlie Gunn, Pat Hanrahan, Stuart Levy, Tamara Munzner, Mark Phillips */
  11.  
  12. #ifndef HPOINT3DEF
  13. #define HPOINT3DEF
  14.  
  15.  
  16. #include "point3.h"
  17.  
  18. typedef float HPt3Coord;
  19. typedef struct { HPt3Coord x, y, z, w; } HPoint3;
  20.  
  21. extern HPoint3 *HPt3Create();
  22. extern void HPt3Delete(/* HPoint3 *pt */);
  23.  
  24. extern void HPt3Print(/* HPoint3 *pt */);
  25. extern void HPt3Copy(/* HPoint3 *pt1, *pt2 */);
  26. extern void HPt3Add(/* HPoint3 *pt1, *pt2, *pt3 */);
  27. extern void HPt3From(/* HPoint3 *pt, HPt3Coord x, y, z, w */);
  28. extern int HPt3From3HPl3s(/* HPoint3 *pt, HPlane3 *pl1, *pl2, *pl3 */);
  29. extern int HPt3From2HLn3s(/* HPoint3 *pt, HLine3 *ln1, *ln2 */);
  30.  
  31. extern int HPt3IntersectHPt3(/* HPoint3 *pt1, *pt2, HLine3 *ln */);
  32. extern void HPt3Pencil(/*HPt3Coord t1,HPoint3 pt1,HPt3Coord t2,HPoint3 *pt2,*pt*/);
  33.  
  34. extern float HPt3DotHPl3(/* HPoint3 *pt, HPlane3 *pl */);
  35.  
  36. extern void HPt3Normalize(/* HPoint3 *pt1, *pt2 */);
  37.  
  38. extern int HPt3Undefined(/* HPoint3 *pt */);
  39. extern int HPt3Infinity(/* HPoint3 *pt */);
  40. extern int HPt3Compare(/* HPoint3 *pt1, *pt2 */);
  41.  
  42. extern int HPt3CoincidentHPt3(/* HPoint3 *pt1, *pt2 */);
  43. extern int HPt3CoincidentHLn3(/* HPoint3 *pt, HLine3 *ln */);
  44. extern int HPt3CoincidentHPl3(/* HPoint3 *pt, HPlane3 *pl */);
  45.  
  46. extern void HPt3Transform(/* Transform3 T, HPoint3 *pt1, *pt2*/);
  47. extern void HPt3TransformN(/* Transform3 T, HPoint3 *pt1, *pt2, int n*/);
  48. extern HPt3Coord HPt3TransPt3( /*Transform3 T, HPoint3 *from, Point3 *into*/ );
  49. extern void Pt3ToPt4( /*Point3 *src, HPoint3 *dst, int npoints */ );
  50. extern void HPt3ToPt3( /*HPoint3 *src, Point3 *dst*/ );
  51. extern void HPt3Dehomogenize( /*HPoint3 *src, HPoint3 *dst*/ );
  52.  
  53. extern void HPt3Dual(/* HPoint3 *pt, HPlane3 *pl */);
  54.  
  55. extern void HPt3LinSum(/*HPt3Coord scale1,HPoint3 *in1,HPt3Coord scale2, HPoint3 *in2, *out */);
  56. extern void HPt3SizeOne (/* HPoint3 *pt, *out */);
  57.  
  58. extern HPt3Coord HPt3R40Dot(HPoint3 *a, HPoint3 *b);
  59. extern HPt3Coord HPt3R31Dot(HPoint3 *a, HPoint3 *b);
  60. extern HPt3Coord HPt3R30Dot(HPoint3 *a, HPoint3 *b);
  61. extern HPt3Coord HPt3SpaceDot(HPoint3 *a, HPoint3 *b, int space);
  62. extern void HPt3R40Normalize(HPoint3 *a);
  63. extern void HPt3R31Normalize(HPoint3 *a);
  64. extern void HPt3R30Normalize(HPoint3 *a);
  65. extern void HPt3SpaceNormalize(HPoint3 *a, int space);
  66. extern HPt3Coord HPt3HypDistance(HPoint3 *a, HPoint3 *b);
  67. extern HPt3Coord HPt3Distance( HPoint3 *a, HPoint3 *b );
  68. extern HPt3Coord HPt3SphDistance(HPoint3 *a, HPoint3 *b);
  69. extern HPt3Coord HPt3SpaceDistance(HPoint3 *a, HPoint3 *b, int space);
  70. extern void HPt3Sub(HPoint3 *a, HPoint3 *b, HPoint3 *aminusb);
  71. extern void HPt3Scale(HPt3Coord s, HPoint3 *a, HPoint3 *sa);
  72. extern HPt3Coord HPt3HypAngle(HPoint3 *base, HPoint3 *v1, HPoint3 *v2);
  73. extern void HPt3SpaceGramSchmidt(HPoint3 *base, HPoint3 *v, int space);
  74. extern void HPt3SubPt3(register HPoint3 *p1, register HPoint3 *p2, register Point3 *v);
  75. extern void HPt3SphGramSchmidt(HPoint3 *base, HPoint3 *v);
  76. extern void HPt3HypGramSchmidt(HPoint3 *base, HPoint3 *v);
  77. #endif
  78.